.TH std::optional::~optional 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::optional::~optional \- std::optional::~optional

.SH Synopsis
   ~optional();  \fI(since C++17)\fP
                 (constexpr since C++20)

   If the object contains a value and the type T is not trivially destructible (see
   std::is_trivially_destructible), destroys the contained value by calling its
   destructor, as if by value().T::~T().

   Otherwise, does nothing.

.SH Notes

   If T is trivially-destructible, then this destructor is also trivial, so
   std::optional<T> is also trivially-destructible.

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

     DR    Applied to              Behavior as published               Correct behavior
                      the destructor was not constexpr while
   P2231R1 C++20      non-trivial destructors can be constexpr in      made constexpr
                      C++20
